Лабораторная работа №4

Операционные системы

Калашникова Ольга Сергеевна НПИбд-01-23

Российский университет дружбы народов, Москва, Россия

09 марта 2024

Цель работы

Целью данной работы является получение навыков правильной работы с репозиториями git.

Задание

  1. Выполнить работу для тестового репозитория.

  2. Преобразовать рабочий репозиторий в репозиторий с git-flow и conventional commits.

Установка git-flow

Установка из коллекции репозиториев Copr.Для начала включаем репозиторий corp при помощи команды dnf copr enable elegos/gitflow (рис.1).

Enable the copr repository

Установка git-flow

Устанавливаем пакет gitflow при помощи dnf install gitflow (рис.2).

Install gitflow

Установка Node.js

На Node.js базируется программное обеспечение для семантического версионирования и общепринятых коммитов. Устанавливаем Node.js при помощи команды dnf install nodejs (рис.3).

Устанавливаем Node.js

Установка Node.js

Устанавливаем пакет pnpm при помощи apt-get install pnpm (в моём случае dnf install pnpm) (рис.4).

Устанавливаем пакет pnpm

Настройка Node.js

Для работы с Node.js добавляем каталог с исполняемыми файлами, устанавливаемыми yarn, в переменную PATH.Запускаем при помощи pnpm setup (рис.5).

Запуск pnpm

Настройка Node.js

Выполняем source ~/.bashrc (рис.6).

Выполнение

Общепринятые коммиты (commitizen)

Данная программа используется для помощи в форматировании коммитов. Устанавливаем пакет commitizen при помощи pnpm add -g commitizen (При этом устанавливается скрипт git-cz, который мы и будем использовать для коммитов) (рис.7).

Устанавливка пакета commitizen

Общепринятые коммиты (standard-changelog)

Данная программа используется для помощи в создании логов. Устанавливаем командой pnpm add -g standard-changelog (рис.8).

Устанавливка пакета standard-changelog

Создание репозитория git и подключение репозитория к github

На самом GitHub создаём новый репозиторий с названием git-extended. Копируем его (рис.9).

Копирование репозитория

Создание репозитория git и подключение репозитория к github

Делаем первый коммит (для начала я создала файл при помощи touch чтобы было измнение) (рис.10).

Первый коммит 1

Создание репозитория git и подключение репозитория к github

Выкладываем на github (git push -u origin main)(рис.11).

Первый коммит 2

Создание репозитория git и подключение репозитория к github

Проверяем (рис.12).

Проверка

Конфигурация общепринятых коммитов

Конфигурация для пакетов Node.js pnpm init (с помощью текстового редактора меняю нужные поля) (рис.13)

Изменённый файл package.json

Конфигурация общепринятых коммитов

Добавляем новые файлы при помощи git add и выполняем коммит при помощи git cz (рис. 14).

Добавление и коммит

Конфигурация общепринятых коммитов

Отправляем на github при помощи git push (рис.15).

Отправка на github

Конфигурация git-flow

Инициализируем git-flow при ппомощи git flow init (Префикс для ярлыков устанавливаем в v) и проверяем что мы на той ветке (рис.16).

Инициализация

Конфигурация git-flow

Загружаем весь репозиторий в хранилище с помощью git push –all (рис.17).

Загружаем репозиторий

Конфигурация git-flow

Установливаем внешнюю ветку как вышестоящую для этой ветки (рис.18).

Устанавливаем внешнюю ветку как вышестоящую

Конфигурация git-flow

Создадим релиз с версией 1.0.0 (рис.19).

Создаём релиз

Конфигурация git-flow

Создадим журнал изменений (рис.20).

Создаём changelog

Конфигурация git-flow

Добавим журнал изменений в индекс (рис.21).

Добавление журнала изменений в индекс

Конфигурация git-flow

Зальём релизную ветку в основную ветку при помощи git flow release finish 1.0.0 (рис.22).

git flow

Конфигурация git-flow

Отправим данные на github (git push –all) (рис.24).

Отправка данных 1

Конфигурация git-flow

Отправим данные на github (git push –tags) (рис.24).

Отправка данных 2

Конфигурация git-flo

Создадим релиз на github. Для этого будем использовать утилиты работы с github (рис. 25).

Создадим релиз на github

Разработка новой функциональности

Создадим ветку для новой функциональности при помощи git flow feature start feature_branch (рис.26).

Создадие ветки

Разработка новой функциональности

Далее, продолжаем работу c git как обычно.(В задании ничего больше не указано). По окончании разработки новой функциональности следующим шагом следует объединить ветку feature_branch c develop при помощи git flow feature finish feature_branch (рис.27).

Объединиение ветки feature_branch c develop

Создание релиза git-flow

Создадим релиз с версией 1.2.3 при помощи команды git flow release start 1.2.3 (рис.28).

Создание релиза с версией 1.2.3

Создание релиза git-flow

Обновите номер версии в файле package.json. Установите её в 1.2.3. (рис.29).

Обовлённый файл package.json

Создание релиза git-flow

Создадим и добавим журнал изменений в индекс (рис.30).

Журнал изменений

Создание релиза git-flow

Зальём релизную ветку в основную ветку при помощи команды git flow release finish 1.2.3 (рис.31).

Релизная ветка

Создание релиза git-flow

Отправим данные на github (рис.32).

Выгрузка данных

Создание релиза git-flow

Создаём релиз на github с комментарием из журнала изменений (рис.33).

Создание релиза

Выводы

Я получила навыки правильной работы с репозиториями git.

Список литературы

Туис